﻿

using AppGISENA.ObjetosNegocio;
using System;
using System.Collections.Generic;
using System.EnterpriseServices;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Gisena.ServiciosRemotos;
using Gisena.Models;
namespace Gisena.ServiciosLocales
{


    
    public interface IUnidadProductivaDataService
    {

        ///SERVICIOS DE SOFIA PLUS
        /// <summary>
        /// Traer unidad productiva de SOFIAPLUS
        /// </summary>
        /// <param name="codup"></param>
        /// <returns></returns>
       List<SOFIA> getUPSofiaRemotaById(string codup);

       List<UP_Sofia> getListUPSofiaById(long codup);
        /// <summary>
        /// Traer instrucores por codigo de UP
        /// </summary>
        /// <param name="codup"></param>
        /// <returns></returns>
    //   InstructorSet getInstructorSofiaByCodUP(string codup);

       
        /// <summary>
        /// Crer Caracterizacion UP en gisena
        /// </summary>
        /// <param name="unidadproductivaBo"></param>
        /// <returns></returns>
        void CreateUnidadProductiva(CaracterizacionBo unidadproductivaBo);

        /// <summary>
        /// Crear up en Gisena UP_Sofia, lo que se trae de SofiaPlus 
        /// </summary>
        /// <param name="upsofiaBo"></param>
        void CreateUPSofia(UnidadProductivaSofiaBo upsofiaBo);

        /// <summary>
        /// obtener UP de GISENA por codigo de la UP,
        /// esta UP se copio exactamente de SOFIA
        /// </summary>
        /// <param name="codup"></param>
        /// <returns></returns>
        /// 
       UP_Sofia  getUPSofiaById(long codup);

        /// <summary>
        /// obtener Up Gisena caracterizada por codigo de UP
        /// </summary>
        /// <param name="codup"></param>
        /// <returns></returns>
        CaracterizacionBo getUPCaracterizadaById(long codup);


        /// <summary>
        /// crear socio de up, info tomada de sofia y creada en Gisena
        /// </summary>
        /// <returns></returns>
        void CreateSocio(socioBo socioup);
        /// <summary>
        /// Crear asesor de la UP
        /// </summary>
        /// <param name="asesorup"></param>
        void CreateAsesor(asesorBO asesorup);
        /// <summary>
        /// Listar todos los productos
        /// </summary>
        /// <returns></returns>
 
        
        


        asesorBO GetAsesorByCodUP(long CodUP);
        List<ProductosBO> GetProductos();

        


        /// <summary>
        /// borarr objeto obtenido por id
        /// </summary>
        /// <param name="id"></param>
        void DeleteProductoOfertado(int id);
       
       // List<ProductosBO> GetProductoById(long codproduct);
      
        List<CaracterizacionBo> GetUPCaracterizacion();
       // TransactionStatus AdicionarProductoPpal(productosOfertadosBO productosofertados);
        

        //ListarUpCompleta(long codup);


        /// <summary>
        /// Adicionar los productos ofertado de la UP
        /// </summary>
        /// <param name="productosofertados"></param>
        void CreateProductoOfertado(productosOfertadosBO productosofertados);

      /// <summary>
      /// listar Tipo de UP
      /// </summary>
      /// <returns></returns>
        List<TipoUPBO> GetTipoUP();
        /// <summary>
        /// listar estados de la UP
        /// </summary>
        /// <returns></returns>
        /// 

        productosOfertadosBO getProductoOfertadoByID(int codproducOfertado);
      
        List<EstadoUPBO> GetEstadoUP();
        List<categoriaBO> GetCategoriaUP();
            /// <summary>
            /// listar productos ofertados
            /// </summary>
            /// <returns></returns>
        List<productosOfertadosBO> GetProductoUP();
      //  productosOfertadosBO getproductoOfertadoById(long codUP);
        List<UnidadProductivaSofiaBo> GetUpSofia();

     //   IQueryable getAprendizSofiaByCodUP(string codup);




        
    }
}
